(function (root, factory) {
  typeof define === 'function' && define.amd ? define(['axios'], factory) :
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('axios')) :
  root.axiosReq = factory(axios);
}(this, function (axios) { 'use strict';

function createAxios(config) {
  // {
  //   baseURL: baseUrl,
  //   timeout: 15 * 1000
  // }
  const inst = axios.create(config)

  // 跨域带cookies
  inst.defaults.withCredentials = true;

  inst.interceptors.request.use((config) => {
    // const token = localStorage.getItem('token');
    // if (token) {
    //   config.headers = {
    //       token: `${token}`,
    //   };
    // }
    return config;
  },  (error) => {
    return Promise.reject(error);
  });

  inst.interceptors.response.use(
    response => {
      // response.status = 200
      const res = response.data || {};
      if (!res.code || res.code == 200) {
        return res;
      }

      console.error('success', res);
      return Promise.reject(res);
    },
    error => {
      if (error.response) {
        switch (error.response.status) {
          case 401:
            break;
          default:
            ;
        }
        console.error('error 1', error.response.data);
        return Promise.reject(error.response.data)
      }
      console.error('error 2', error);
      return Promise.reject(error)
    }
  )
  
  return inst;
}

  var axiosReq = createAxios();
  axiosReq.create = createAxios;
  axiosReq.axios = axios;
  return axiosReq

}))
